# C++ 2025年课程设计构建控制
# 此文件生成三个可执行目标，分别是主程序，UI测试程序，数据库测试程序
# 主程序是一定会保证生成的，其他目标由于维护问题不一定会生成
# 此外还有主程序测试模式，提供一键注入数据库等操作
cmake_minimum_required(VERSION 3.28)

set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

project(tickets_manager C CXX ASM)

add_executable(tms_ui_test
    "tms_ui.hpp"
    "tms_ui.cpp"
    "tms_definitions.hpp"
)

add_executable(tms_db_test
    "tms_db.cpp"
    "tms_db.hpp"
    "tms_definitions.hpp"
)

add_executable(tickets_manager
    "tms.cpp"
    "tms.hpp"
    "tms_db.cpp"
    "tms_db.hpp"
    "tms_ui.cpp"
    "tms_ui.hpp"
    "tms_definitions.hpp"
)

# 为各个目标设置构建测试宏，在适当的地方启用DB,UI的测试
target_compile_definitions(tms_ui_test PRIVATE _TMS_UI_TEST)
target_compile_definitions(tms_db_test PRIVATE _TMS_DB_TEST)
target_compile_definitions(tickets_manager PRIVATE _TMS_MAIN_TEST)
